﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Text.RegularExpressions;

public partial class Admin_Views_module_managerUser : System.Web.UI.UserControl
{
    CustomerBus cusBus;
    protected void Page_Load(object sender, EventArgs e)
    {
        cusBus = new CustomerBus();
        if (!IsPostBack) 
        {
            LoadData();
        }
        
    }
    public void LoadData()
    {
        DataTable dt = cusBus.getAllCustomer();
        DataList1.DataSource = dt;
        DataList1.DataBind();

    }
    protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
    {

        int n = (int)e.Item.ItemIndex;
        DataList1.EditItemIndex = n;
        LoadData();
    }
    protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
    {
        int n = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
        if (cusBus.Delete_Customer(n))
        {
            this.LoadData();
        }
        else
        {
            ScriptManager.RegisterStartupScript(this, typeof(Page), "Thông Báo", "<script>alert('Xóa tài khoản không thành công')</script>", false);
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Session["create"] = "createacc";
    }
 
    protected void btnOK_Click(object sender, EventArgs e)
    {
        if (checkForm())
        {
            if (checkEmail())
            {
                Customer cus = new Customer();
                cus.First_name = txtFirstName.Text;
                cus.Last_name = txtLastName.Text;
                cus.Email = txtEmail.Text;
                cus.Password = txtPassword.Text;
                cus.Address = txtAddress.Text;
                cus.City = txtCity.Text;
                cus.Phone = txtPhone.Text;
                if (cusBus.InsertUpdateCustomer(cus))
                {
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "Test", "<script>alert('Tạo tài khoản thành công')</script>", false);
                    Session["create"] = "";
                    this.LoadData();
                }
                else
                {
                    Label9.Text = "Đăng kí thất bại ";
                }
            }
            else
            {
                Label4.Text = "Đã có người sử dụng email này";
            }

        }
    }
    public bool checkEmail()
    {
        bool check = false;
        Customer cus = new Customer();
        CustomerBus cusBus = new CustomerBus();
        cus = cusBus.getCustomerByEmail(txtEmail.Text.ToString().Trim());
        if (cus.Email == null || cus.Email == "")
        {
            check = true;
        }
        return check;
    }
    public bool checkForm()
    {
        Label2.Text = "";
        Label3.Text = "";
        Label4.Text = "";
        Label5.Text = "";
        Label7.Text = "";
        Label8.Text = "";
        Label9.Text = "";
        Regex reg = new Regex(@"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$");
        bool check = false;
        if (String.IsNullOrEmpty(txtFirstName.Text.ToString().Trim()) || String.IsNullOrEmpty(txtLastName.Text.ToString().Trim()) || String.IsNullOrEmpty(txtEmail.Text.ToString().Trim()) || String.IsNullOrEmpty(txtPassword.Text.ToString().Trim()) || String.IsNullOrEmpty(txtAddress.Text.ToString().Trim()) || String.IsNullOrEmpty(txtCity.Text.ToString().Trim()) || String.IsNullOrEmpty(txtPhone.Text.ToString().Trim()))
        {
            if (String.IsNullOrEmpty(txtFirstName.Text.ToString().Trim()))
            {
                txtFirstName.Focus();
                Label2.Text = "Họ không được để trống";

            }
            else if (String.IsNullOrEmpty(txtLastName.Text.ToString().Trim()))
            {
                txtLastName.Focus();
                Label3.Text = "Tên không được để trống";

            }
            else if (String.IsNullOrEmpty(txtEmail.Text.ToString().Trim()))
            {

                txtEmail.Focus();
                Label4.Text = " Email bị trống";


            }
            else if (reg.IsMatch(txtEmail.Text.ToString().Trim()) == false)
            {
                txtEmail.Focus();
                Label4.Text = " Email sai định dạng";
            }
            else if (String.IsNullOrEmpty(txtPassword.Text.ToString().Trim()))
            {
                txtPassword.Focus();
                Label5.Text = "Pass word không được để trống";

            }
            else if (String.IsNullOrEmpty(txtAddress.Text.ToString().Trim()))
            {
                txtAddress.Focus();
                Label7.Text = "Địa chỉ không được để trống";
            }
            else if (String.IsNullOrEmpty(txtCity.Text.ToString().Trim()))
            {
                txtCity.Focus();
                Label8.Text = "Thành phố không được để trống";
            }
            else if (String.IsNullOrEmpty(txtPhone.Text.ToString().Trim()))
            {
                txtPhone.Focus();
                Label9.Text = "Số điện thoại không được để trống";
            }
            try
            {
                int phone = Convert.ToInt32(txtPhone.Text.ToString().Trim());
                check = true;
            }
            catch (System.Exception ex)
            {
                Label9.Text = "Số điện thoại phải là số";
                check = false;
            }

        }
        else
        {
            check = true;
        }
        return check;
    }
    protected void btnCancel_Click(object sender, EventArgs e)
    {
        Session["create"] = null;
    }
    protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
    {
        
        Customer cus = new Customer();
        cus.Customer_id = (int)e.Item.ItemIndex;
        cus.First_name = ((TextBox)e.Item.FindControl("txtEdFirstName")).Text.ToString();
        cus.Last_name = ((TextBox)e.Item.FindControl("txEdtLastName")).Text.ToString();
        cus.Email = ((TextBox)e.Item.FindControl("txtEdEmail")).Text.ToString();
        cus.Phone = ((TextBox)e.Item.FindControl("txtEdPhone")).Text.ToString();
        cus.Address = ((TextBox)e.Item.FindControl("txtEdAddress")).Text.ToString();
        cus.Date_added = DateTime.Parse(((TextBox)e.Item.FindControl("txtEdDate")).Text.ToString());
        if (cusBus.InsertUpdateCustomer(cus))
        {
            ScriptManager.RegisterStartupScript(this, typeof(Page), "Test", "<script>alert('Sửa thành công')</script>", false);
            DataList1.EditItemIndex = -1;   
            LoadData();
        }
        else 
        {
            ScriptManager.RegisterStartupScript(this, typeof(Page), "Test", "<script>alert('Sửa tài khoản không thành công')</script>", false);
        }
    }
}